home *** CD-ROM | disk | FTP | other *** search
/ Chip 2005 May / chip-cd_2005_05.zip / 05 / Internet / Amaya 9.1 / Amaya 9.1 Win / amaya-WinXP-9.1.exe / amaya / HTML.trans.es < prev    next >
Text File  |  2004-12-02  |  12KB  |  528 lines

  1. ! Utilizaci≤n del fichero HTML.trans
  2. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  3. ! Este archivo puede editarse durante una sesi≤n de Amaya. El
  4. ! archivo se analiza dinßmicamente cuando desde el editor se
  5. ! solicita la herramienta de transformaci≤n. Por tanto, se
  6. ! pueden a±adir nuevas transformaciones mientras se estß editando.
  7. !
  8. ! Sintaxis del lenguaje de transformaci≤n de Amaya
  9. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  10. !
  11. ! Los comentarios empiezan con !
  12. !
  13. ! Este archivo puede editarse durante una sesi≤n de Amaya. El
  14. ! archivo se analiza dinßmicamente cuando desde el editor se
  15. ! solicita la herramienta de transformaci≤n. Por tanto, se
  16. ! pueden a±adir nuevas transformaciones mientras se estß editando.
  17. !
  18. ! Una regla de transformaci≤n tiene tres partes: 
  19. !     - un NOMBRE seguido de dos puntos ":"
  20. !     - un PATR╙N ORIGEN seguido de punto y coma ";"
  21. !     - y una lista de REGLAS entre llaves "{" "}", cada una de ellas
  22. !       seguida de un punto y coma ";"
  23. !
  24. ! a) El NOMBRE aparecerß en el men· de transformaci≤n.
  25. !
  26. ! b) El PATR╙N ORIGEN proporciona una organizaci≤n determinada de los
  27. !    elementos a transformar: contiene etiquetas XML/HTML y utiliza una
  28. !    sintaxis similar al SGML para los operadores de composici≤n:
  29. !     e1 | e2   elecci≤n entre dos elementos e1 y e2
  30. !     e1 , e2   secuencia e1 seguido de e2
  31. !     e+        secuencia de uno o mßs elementos e
  32. !     ?e        elemento opcional e
  33. !     ( )       agrupaci≤n de nodos
  34. !    Las llaves "{" "}" definen el contenido de un nodo.
  35. !    El sφmbolo "*" es un comodφn que coincide con cualquier elemento
  36. !    Es posible renombrar una etiqueta escribiendo delante un nombre 
  37. !    seguido de dos puntos ":"
  38. !
  39. ! c) Las REGLAS definen las transformaciones a aplicar a los elementos
  40. !    identificados en el patr≤n.
  41. !    Cada regla acaba con un punto y coma ";"
  42. !
  43. ! - Puede tratarse de una regla de acci≤n. En este caso, la regla 
  44. !   comienza por "$" y va seguida de la acci≤n de men· a realizar.
  45. !
  46. ! - Puede haber una lista de elementos de transformaci≤n:
  47. !   Tienen dos partes:
  48. !      - el identificador de fuente: una etiqueta o un nombre que se
  49. !        encuentra en el patr≤n y enlaza la regla a los nodos del patr≤n
  50. !      - el cuerpo de la regla: controla transformaci≤n
  51. !        hay dos tipos de cuerpos de reglas:
  52. !        - a discard rule body is slash and express that the correspoding
  53. !          pattern node does not occuring the transformation result
  54. !        - una regla de generaci≤n comienza por
  55. !        - un sφmbolo ">"
  56. !        - y una lista de etiquetas de desstino. La lista se divide en
  57. !          dos partes separadas por dos puntos ":": 
  58. !           * el camino al lugar de generaci≤n
  59. !           * y la lista de etiquetas a generar
  60. !   El sφmbolo "." se emplea para bajar en la estructura en ßrbol.
  61. !   Si la marca especial estrella ("*") se encuentra al final de la lista
  62. !   de etiquetas a generar, la etiqueta del elemento origen no se cambia,
  63. !   pero el elemento puede desplazarse a otro lugar.
  64. !
  65. !   Las reglas se aplican en el orden en el que se encuentran los 
  66. !   identificadores al recorrer (primero en profundidad) la estructura origen.
  67. !   varias reglas pueden tener el mismo identificador, en ese caso las reglas
  68. !   se aplican en el orden en que estßn definidas.
  69.  
  70. ! Reglas de transformaci≤n
  71. !!!!!!!!!!!!!!!!!!!!!!!!!!
  72.  
  73. Direcci≤n:(p{*+})+;
  74.     {
  75.     * > address:*;
  76.     }
  77.  
  78. Pßrrafo:(address{*+});
  79.     {
  80.     * > p:*;
  81.     }
  82.  
  83. ! Entre listas
  84. !!!!!!!!!!!!!!
  85.  
  86. Lista de definici≤n:*{(li{(list:*{(li2:li)+}|other:*)+})+};
  87.     {
  88.     other > dl:dt;
  89.     list > dl:dd;
  90.     li2 > dl.dd:;
  91.     }
  92.  
  93. Lista no ordenada:(dl{(dt|dd{(*)+})+})+;
  94.     {
  95.     dt > ul:li;
  96.     * > ul.li.ul:li.*;
  97.     }
  98.  
  99. Lista ordenada:(dl{(dt|dd{(*)+})+})+;
  100.     {
  101.     dt > ol:li;
  102.     * > ol.li.ol:li.*;
  103.     }
  104.  
  105. Lista no ordenada:(ol{(li{(*)+})+})+;
  106.         {
  107.         * > ul:li.*;
  108.         }
  109.  
  110. Lista ordenada:(ul{(li{(*)+})+})+;
  111.         {
  112.     * > ol:li.*;
  113.         }
  114.  
  115. Definici≤n:dt{(*)+};
  116.     {
  117.     * > dd:*;
  118.     }
  119.  
  120. TΘrmino:dd{(p|*)+};
  121.     {
  122.     dd > :dt;
  123.     p > :dt;
  124.     * > dt:*;
  125.     }
  126.  
  127. Borrar lista de definici≤n:(dl{(dt{(dtc:*)+}|dd{(p|*)+})+})+;
  128.     {
  129.     dtc > h4:*;
  130.     p > p;
  131.     * > p:*;
  132.     }
  133.  
  134. ! Eliminar Encabezados
  135. !!!!!!!!!!!!!!!!!!!!!!
  136.  
  137. Pßrrafos: 
  138. (h1|h2|h3|h4|h5|h6|p|*{(li{(il:*)+})+})+;
  139.     { 
  140.     h1 > :p;
  141.     h2 > :p;
  142.     h3 > :p;
  143.     h4 > :p;
  144.     h5 > :p;
  145.     h6 > :p;
  146.     p > :p;
  147.     il > :p;
  148.     }
  149.  
  150. ! Encabezados en/desde definiciones
  151. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  152.  
  153. Lista de definici≤n:*,(h1|h2|h3|h4|h5|h6|p)+;
  154.     {
  155.     * > dl:dt;
  156.     h1 > dl:dt;
  157.     h2 > dl:dt;
  158.     h2 > dl:dt;
  159.     h3 > dl:dt;
  160.     h4 > dl:dt;
  161.     h5 > dl:dt;
  162.     h6 > dl:dt;
  163.     p > dl:dd;
  164.     }
  165.  
  166. Lista de definici≤n:(h1,?hr,?(level1:*)+,?(h2,?(level2:*)+,?((h3|h4|h5|h6),(level3:*)+)+)+)+;
  167.     {
  168.     h1 > dl:dt;
  169.     level1>dl.dd:*;
  170.     h2 > dl.dd:dl.dt ;
  171.     level2 > dl.dd.dl.dd:*;
  172.     h3 > dl.dd.dl.dd:dl.dt ;
  173.     h4 > dl.dd.dl.dd:dl.dt ;
  174.     h5 > dl.dd.dl.dd:dl.dt ;
  175.     h6 > dl.dd.dl.dd:dl.dt ;
  176.     level3 > dl.dd.dl.dd.dl.dd:*;
  177.     }
  178.  
  179. Lista de definici≤n:(h2,?hr,?(level1:*)+,(h3,?(level2:*)+,((h4|h5|h6),(level3:*)+)+)+)+;
  180.     {
  181.     h2 > dl:dt;
  182.     level1 > dl.dd:*;
  183.     h3 > dl.dd:dl.dt ;
  184.     level2 > dl.dd.dl.dd:*;
  185.     h4 > dl.dd.dl.dd:dl.dt ;
  186.     h5 > dl.dd.dl.dd:dl.dt ;
  187.     h6 > dl.dd.dl.dd:dl.dt ;
  188.     level3 > dl.dd.dl.dd.dl.dd:*;
  189.     }
  190.  
  191. Lista de definici≤n:(h3,?hr,?(level1:*)+,?(h4,?(level2:*)+,((h5|h6),(level3:*)+)+)+)+;
  192.     {
  193.     h3 > dl:dt;
  194.     level1 > dl.dd:*;
  195.     h4 > dl.dd:dl.dt ;
  196.     level2 > dl.dd.dl.dd:*;
  197.     h5 > dl.dd.dl.dd:dl.dt ;
  198.     h6 > dl.dd.dl.dd:dl.dt ;
  199.     level3 > dl.dd.dl.dd.dl.dd:*;
  200.     }
  201.  
  202. Lista de definici≤n multinivel:(h4,?hr,?(level1:*)+,(h5,?(level2:*)+,((h6)+,(level3:*)+)+)+)+;
  203.     {
  204.     h4 > dl:dt;
  205.     level1 > dl.dd:*;
  206.     h5 > dl.dd:dl.dt ;
  207.     level2 > dl.dd.dl.dd:*;
  208.     h6 > dl.dd.dl.dd:dl.dt ;
  209.     level3 > dl.dd.dl.dd.dl.dd:*;
  210.     }
  211.  
  212. Encabezados h1:(dl{(dt1:dt|dd{(dl{(dt2:dt|dd{(dl{(dt3:dt|dd{content:*})+}|content:*)+})+}|content:*)+})+}|hr)+;
  213.     {
  214.     dt1 > :h1;
  215.     dt2 > :h2;
  216.     dt3 > :h3;
  217.     content > :*;
  218.     }
  219.  
  220. Encabezados h2:(dl{(dt1:dt|dd{(dl{(dt2:dt|dd{(dl{(dt3:dt|dd{content:*})+}|content:*)+})+}|content:*)+})+}|hr)+;
  221.     {
  222.     dt1 > :h2;
  223.     dt2 > :h3;
  224.     dt3 > :h4;
  225.     content > :*;
  226.     }
  227.  
  228. Encabezados h3:(dl{(dt1:dt|dd{(dl{(dt2:dt|dd{(dl{(dt3:dt|dd{content:*})+}|content:*)+})+}|content:*)+})+}|hr)+;
  229.     {
  230.     dt1 > :h3;
  231.     dt2 > :h4;
  232.     dt3 > :h5;
  233.     content > :*;
  234.     }
  235.  
  236. Lista de definici≤n: p,*+;
  237.     {
  238.     p > dl:dt;
  239.     * > dl.dd:*;
  240.     }
  241.  
  242. ! Preformateado en/desde pßrrafos
  243. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  244.  
  245. Preformateado: (p{*+})+;
  246.     {
  247.     * > pre:*;
  248.     }
  249.  
  250. Pßrrafo: (pre{*+})+;
  251.     {
  252.     *   > p:*;
  253.     }
  254.  
  255. Unir elementos: li,(li2:li)+;
  256.     {
  257.     li > li:;
  258.     li2 > li:;
  259.     }
  260.  
  261. Eliminar el nivel de pßrrafo: li{p{(cont:*)+},?(next:*)+};
  262.     {
  263.          li > li:;
  264.          cont > *;
  265.          next > *;
  266.          }
  267.  
  268. Eliminar el subrayado: (u{*+})+;
  269.         {
  270.         * > :*;
  271.         }
  272.  
  273. Separar elementos: (li{a:*,(b:*)+})+;
  274.     {
  275.     a > :li.*;
  276.     b > :li.*;
  277.     }
  278.  
  279. Unir listas: ul{li+},(ul{li+})+;
  280.     {
  281.     li > ul:li;
  282.     }
  283.  
  284. Unir listas: ol{li+},(ol{li+})+;
  285.     {
  286.     li > ol:li;
  287.     }
  288.  
  289. Unir listas: dl{(dt|dd)+},(dl{(dt|dd)+})+;
  290.     {
  291.     dt > dl:dt;
  292.     dd > dl:dd;
  293.     }
  294.  
  295. !Pßrrafo: *{(li{(cont:*)+})+};
  296. !    {
  297. !    cont > :*;
  298. !    }
  299.  
  300. Pßrrafo: *{(li{(*{?(li{(lev2:*)+})+})+})+};
  301.     {
  302.     lev2 > :*;
  303.     }
  304.  
  305. Pßrrafos: (ol{(li{(h1|h2|h3|h4|h5|h6|p|*)+})+})+;
  306.     {
  307.     h1 > :h1;
  308.     h2 > :h2;
  309.     h3 > :h3;
  310.     h4 > :h4;
  311.     h5 > :h5;
  312.     h6 > :h6;
  313.     p > :p;
  314.     * > :p.*;
  315.     }
  316.  
  317. Pßrrafos: (ul{(li{(h1|h2|h3|h4|h5|h6|p|*)+})+})+;
  318.     {
  319.     h1 > :h1;
  320.     h2 > :h2;
  321.     h3 > :h3;
  322.     h4 > :h4;
  323.     h5 > :h5;
  324.     h6 > :h6;
  325.     p > :p;
  326.     * > :p.*;
  327.     }
  328.  
  329. Eliminar dos niveles de listas: *{(li{(*{?(li{(lev2:*)+})+})+})+};
  330.     {
  331.     lev2 > :*;
  332.     }
  333.  
  334. ! Formularios en/desde elementos
  335. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  336.  
  337. Incluir en formulario:(h1|h2|h3|h4|h5|h6|p)+;
  338.     {
  339.     h1 > form:h1;
  340.     h2 > form:h2;
  341.     h3 > form:h3;
  342.     h4 > form:h4;
  343.     h5 > form:h5;
  344.     h6 > form:h6;
  345.     p > form:p;
  346.     }
  347.  
  348. Eliminar formulario: form{?*+};
  349.     {
  350.     * > :*;
  351.     }
  352.  
  353. Eliminar el submen·: (optgroup{*+})+;
  354.     {
  355.         * > :*;
  356.     }
  357.  
  358. ! Listas en/desde elementos
  359. !!!!!!!!!!!!!!!!!!!!!!!!!!!
  360.  
  361. Lista no ordenada: (p|ol|menu|dir|pre|form)+;
  362.        {
  363.         p > ul:<li style=p.style>;
  364.         ol > ul;
  365.         pre > ul:li.pre;
  366.         form > ul:li.form;
  367.         }
  368.  
  369. Lista ordenada:(p|ul|menu|dir|pre|form)+;
  370.        {
  371.         p > ol:li;
  372.         ul > ol;
  373.         pre > ol:li.pre;
  374.         form > ol:li.form;
  375.         }
  376.  
  377. ! Remove elements
  378. !!!!!!!!!!!!!!!!!!!!!!!!!
  379.  
  380. Eliminar divisi≤n: (div{*+})+;
  381.     {
  382.         * > :*;
  383.     }
  384.  
  385. Eliminar elemento center: (center{*+})+;
  386.     {
  387.         * > :*;
  388.     }
  389.  
  390. Eliminar nivel de pßrrafo: p{img};
  391.          {
  392.         img > :*;
  393.          }
  394.  
  395. Eliminar elemento blockQuote: blockquote{*+};
  396.     {
  397.     * > :*;
  398.     }
  399.  
  400. Eliminar elemento font: font{*+};
  401.     {
  402.     * > :*;
  403.     }
  404.  
  405. Eliminar elemento span: span{*+};
  406.     {
  407.     * > :*;
  408.     }
  409.  
  410. Eliminar elemento subφndice: sub{*+};
  411.     {
  412.     * > :*;
  413.     }
  414. Eliminar elemento superφndice: sup{*+};
  415.     {
  416.     * > :*;
  417.     }
  418.     
  419. Eleminar elemento cita (q): q{*+};
  420.     {
  421.         * > :*;
  422.     }
  423.  
  424. Eliminar elemento bidi: bdo{*+};
  425.     {
  426.         * > :*;
  427.     }
  428.  
  429. ! Tablas en/desde elementos
  430. !!!!!!!!!!!!!!!!!!!!!!!!!!!
  431.  
  432. Tabla: *{(lev1:li{?(*{(lev2:li)+}|elem:*)+})+};
  433.     {
  434.     lev1 > <table border="1">:tr;
  435.     elem > table.tr:td.*;
  436.     lev2 > table.tr:td;
  437.     }
  438.  
  439. Tabla: dl{(dt|dd)+};
  440.     {
  441.     dt > <table border="1">.tbody:tr.td;
  442.     dd > table.tbody.tr:td;
  443.     }
  444.  
  445. Lista ordenada:table{?caption,(block:*{(tr{(td|th),?(td2:td|th2:th)+})+})+};
  446.       {
  447.     caption > :ol.li.strong;
  448.     block > :ol;
  449.     tr > ol:li;
  450.     td > ol.li:;
  451.     th > ol.li:;
  452.     td2 > ol.li.ul:li;
  453.     th2 > ol.li.ul:li;
  454.     }
  455.  
  456. Lista no ordenada:table{?caption,(block:*{(tr{(td|th),?(td2:td|th2:th)+})+})+};
  457.     {
  458.     caption > :ul.li.strong;
  459.     block > :ul;
  460.     tr > ul:li;
  461.     td > ul.li:;
  462.     th > ul.li:;
  463.     td2 > ul.li.ul:li;
  464.     th2 > ul.li.ul:li;
  465.     }
  466.  
  467. Lista de definici≤n:table{?caption,(block:*{(tr{(td|th),?(td2:td|th2:th)+})+})+};
  468.         {
  469.         caption > :dl.dt;
  470.         block   > :dl;
  471.         td      > dl:dt;
  472.         th      > dl:dt;
  473.         td2     > dl:dd;
  474.         th2     > dl:dd;
  475.         }
  476.  
  477. Tabla vertical: *+;
  478.     {
  479.     * > <table border="1">:tr.td.*;
  480.     }
  481.  
  482. Tabla horizontal: *+;
  483.     {
  484.     * > <table border="1">.tr:td.*;
  485.     }
  486.  
  487. Eliminar tabla:table{?caption,(block:*{(tr{(td|th),?(td2:td|th2:th)+})+})+};
  488.         {
  489.         caption > :div.p;
  490.         block   > :div;
  491.         td      > :div;
  492.         th      > :div;
  493.         td2     > :div;
  494.         th2     > :div;
  495.         }
  496.  
  497. Transponer tabla:table{tbody{tr{(td|th)+}|(tr{td2:td|th2:th})+}};
  498.     {
  499.     td > <table border=table.border>:tr.td;
  500.     th > table:tr.td;
  501.     td2 > <table border=table.border>.tr:td;
  502.     th2 > table.tr:td;
  503.     }
  504.  
  505. Celdas de encabezado:?(td|th)+,td,?(td|th)+;
  506.     {
  507.     $ChangeToHeadingCell;
  508.     }
  509.  
  510. Celdas de datos:?(td|th)+,th,?(td|th)+;
  511.     {
  512.     $ChangeToDataCell;
  513.     }
  514.  
  515. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  516. ! Tests de transformaci≤n del documento completo !
  517. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  518.  
  519. DistrThot: body{*+}
  520.     {
  521.     body >     <table border="0" with="100%">.tbody.tr.<td with="30%">.<a href="http://opera.inrialpes.fr/OPERA/Thot.en.html"><img src="thot.gif" alt="Thot Editor" border="0" align="middle">;
  522.     body > table.tbody.tr.td:<a href="http://opera.inrialpes.fr">.<img src="opera.gif" alt="Opera project" border="0" align="middle">;
  523.     body > table.tbody.tr:td.<img src="guide.gif" alt="Documentation" border="0" align="middle">;
  524.     body > table.tbody.tr.td:h1."Title of the page";
  525.     body > :<table border="0" with="100%">.tbody.tr.<td with="30%">.h2.<a href="Index.html">."Home";
  526.     * > table.tbody.tr:td.*;
  527.     }
  528.